/*
 * =====================================================================================
 *
 *       Filename:  facade.h
 *
 *    Description:  
 *
 *        Version:  1.0
 *        Created:  02/16/2011 11:12:42 AM
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  dp (8023), dp8023@gmail.com
 *        Company:  
 *
 * =====================================================================================
 */

#ifndef _FACADE_H_
#define _FACADE_H_

#include <iostream>
#include <string>

using namespace std;

class codescanner
{
  public:
    void scan()
    {
        cout << "scan code." << endl;
    }
};

class codeparser
{
  public:
    void parse()
    {
        cout << "parse code." << endl;
    }
};

class codegenerator
{
  public:
    void generate()
    {
        cout << "generate code." << endl;
    }
};

class compiler
{
  public:
    void compile()
    {
        cout <<"compile program..." << endl;

        codescanner scanner;
        scanner.scan();
        codeparser parser;
        parser.parse();
        codegenerator generator;
        generator.generate();
    }
};

#endif
